package com.usefullc.user.vo;

import com.usefullc.system.entity.BaseEntity;
import com.usefullc.system.service.component.extend.DictField;
import com.usefullc.system.service.component.extend.EnumField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;
import java.util.List;

/**
 * @author: Sampson
 * @date: 2018-12-19 16:30
 */
@Data
@ApiModel
public class UserVo extends BaseEntity {

    @ApiModelProperty(notes = "租户ID")
    private Long tenantId;

    @ApiModelProperty(notes = "账号/用户名")
    private String accountNo;


    @ApiModelProperty(notes = "昵称")
    private String nickname;

//    @EnumField(value = "userTypeEnum")
//    @ApiModelProperty(notes = "类型")
//    private Integer type;

    @EnumField(value = "userStatusEnum")
    @ApiModelProperty(notes = "状态")
    private Integer status;

    @EnumField(value = "userLevelEnum")
    @ApiModelProperty(notes = "等级")
    private Integer level;

    @ApiModelProperty(notes = "过期日期")
    private Date gmtExpire;

    @ApiModelProperty(notes = "国家区号")
    private String areaCode;

    @ApiModelProperty(notes = "微信")
    private String wechat;

    @ApiModelProperty(notes = "手机")
    private String mobile;

    @ApiModelProperty(notes = "邮件")
    private String email;

//    @UsefullcField(convertType = String.class)
    @EnumField(value = "userGenderEnum")
    @ApiModelProperty(notes = "性别")
    private Integer gender;

    @ApiModelProperty(notes = "生日")
    private Date birthday;

    @ApiModelProperty(notes = "宣言")
    private String message;

    @ApiModelProperty(notes = "头像")
    private String avatar;


    @ApiModelProperty(notes = "描述")
    private String desc;


    @ApiModelProperty(notes = "用户地址")
    private String address;


    @ApiModelProperty(notes = "用户姓名")
    private String userName;

    @ApiModelProperty(notes = "角色")
    private List<Long> roleIds;

    @ApiModelProperty(notes = "部门ID")
    private Long deptId;

//    @ApiModelProperty(notes = "部门")
//    private Dept dept;

//    @ApiModelProperty(notes = "员工")
//    private Employee employee;

//    @ApiModelProperty(notes = "职位")
//    private Position position;

    @ApiModelProperty(notes = "信息标签")
    private String otherInfoTag;


    @DictField(value="career")
    @ApiModelProperty(notes = "职业")
    private String career;


    @ApiModelProperty(notes = "邀请码")
    private String inviteCode;

    @ApiModelProperty(notes = "别人的邀请码")
    private String shareInviteCode;

    private String local;


    private String tenantName;



}
